home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / octa209s.zip / octave-2.09 / doc / interpreter / poly.tex < prev    next >
Text File  |  1997-08-13  |  7KB  |  259 lines

  1. @c Copyright (C) 1996, 1997 John W. Eaton
  2. @c This is part of the Octave manual.
  3. @c For copying conditions, see the file gpl.tex.
  4.  
  5. @node Polynomial Manipulations, Control Theory, Sets, Top
  6. @chapter Polynomial Manipulations
  7.  
  8. In Octave, a polynomial is represented by its coefficients (arranged
  9. in descending order).  For example, a vector
  10. @iftex
  11.  $c$
  12. @end iftex
  13. @ifinfo
  14.  @var{c}
  15. @end ifinfo
  16. of length
  17. @iftex
  18. @tex
  19.  $N+1$
  20. @end tex
  21. @end iftex
  22. @ifinfo
  23.  @var{N+1}
  24. @end ifinfo
  25.  corresponds to the following polynomial of order
  26. @iftex
  27. @tex
  28.  $N$
  29. $$
  30.  p (x) = c_1 x^N + ... + c_N x + c_{N+1}.
  31. $$
  32. @end tex
  33. @end iftex
  34. @ifinfo
  35.  @var{N}
  36.  
  37. @example
  38. p(x) = @var{c}(1) x^@var{N} + ... + @var{c}(@var{N}) x + @var{c}(@var{N}+1).
  39. @end example
  40. @end ifinfo
  41.  
  42. @deftypefn {Function File} {} compan (@var{c})
  43. Compute the companion matrix corresponding to polynomial coefficient
  44. vector @var{c}.
  45.  
  46. The companion matrix is
  47. @iftex
  48. @tex
  49. $$
  50. A = \left[\matrix{
  51.  -c_2/c_1 & -c_3/c_1 & \cdots & -c_N/c_1 & -c_{N+1}/c_1\cr  
  52.      1    &     0    & \cdots &     0    &         0   \cr
  53.      0    &     1    & \cdots &     0    &         0   \cr
  54.   \vdots  &   \vdots & \ddots &  \vdots  &      \vdots \cr
  55.      0    &     0    & \cdots &     1    &         0}\right].
  56. $$
  57. @end tex
  58. @end iftex
  59. @ifinfo
  60.  
  61. @smallexample
  62.      _                                                        _
  63.     |  -c(2)/c(1)   -c(3)/c(1)  ...  -c(N)/c(1)  -c(N+1)/c(1)  |
  64.     |       1            0      ...       0             0      |
  65.     |       0            1      ...       0             0      |
  66. A = |       .            .   .            .             .      |
  67.     |       .            .       .        .             .      |
  68.     |       .            .           .    .             .      |
  69.     |_      0            0      ...       1             0     _|
  70. @end smallexample
  71. @end ifinfo
  72.  
  73. The eigenvalues of the companion matrix are equal to the roots of the
  74. polynomial.
  75. @end deftypefn
  76.  
  77. @deftypefn {Function File} {} conv (@var{a}, @var{b})
  78. Convolve two vectors.
  79.  
  80. @code{y = conv (a, b)} returns a vector of length equal to
  81. @code{length (a) + length (b) - 1}.
  82. If @var{a} and @var{b} are polynomial coefficient vectors, @code{conv}
  83. returns the coefficients of the product polynomial.
  84. @end deftypefn
  85.  
  86. @deftypefn {Function File} {} deconv (@var{y}, @var{a})
  87. Deconvolve two vectors.
  88.  
  89. @code{[b, r] = deconv (y, a)} solves for @var{b} and @var{r} such that
  90. @code{y = conv (a, b) + r}.
  91.  
  92. If @var{y} and @var{a} are polynomial coefficient vectors, @var{b} will
  93. contain the coefficients of the polynomial quotient and @var{r} will be
  94. a remander polynomial of lowest order.
  95. @end deftypefn
  96.  
  97. @deftypefn {Function File} {} poly (@var{a})
  98. If @var{a} is a square @var{N}-by-@var{N} matrix, @code{poly (@var{a})}
  99. is the row vector of the coefficients of @code{det (z * eye (N) - a)},
  100. the characteristic polynomial of @var{a}.  If @var{x} is a vector,
  101. @code{poly (@var{x})} is a vector of coefficients of the polynomial
  102. whose roots are the elements of @var{x}.
  103. @end deftypefn
  104.  
  105. @deftypefn {Function File} {} polyderiv (@var{c})
  106. Return the coefficients of the derivative of the polynomial whose
  107. coefficients are given by vector @var{c}.
  108. @end deftypefn
  109.  
  110. @deftypefn {Function File} {} polyfit (@var{n}, @var{y}, @var{n})
  111. Return the coefficients of a polynomial @var{p}(@var{x}) of degree
  112. @var{n} that minimizes 
  113. @iftex
  114. @tex
  115. $$
  116. \sum_{i=1}^N (p(x_i) - y_i)^2
  117. $$
  118. @end tex
  119. @end iftex
  120. @ifinfo
  121. @code{sumsq (p(x(i)) - y(i))},
  122. @end ifinfo
  123.  to best fit the data in the least squares sense.
  124. @end deftypefn
  125.  
  126. @deftypefn {Function File} {} polyinteg (@var{c})
  127. Return the coefficients of the integral the polynomial whose coefficients
  128. are represented by the vector @var{c}.
  129.  
  130. The constant of integration is set to zero.
  131. @end deftypefn
  132.  
  133. @deftypefn {Function File} {} polyreduce (@var{c})
  134. Reduces a polynomial coefficient vector to a minimum number of terms by
  135. stripping off any leading zeros.
  136. @end deftypefn
  137.  
  138. @deftypefn {Function File} {} polyval (@var{c}, @var{x})
  139. Evaluate a polynomial.
  140.  
  141. @code{polyval (@var{c}, @var{x})} will evaluate the polynomial at the
  142. specified value of @var{x}.
  143.  
  144. If @var{x} is a vector or matrix, the polynomial is evaluated at each of
  145. the elements of @var{x}.
  146. @end deftypefn
  147.  
  148. @deftypefn {Function File} {} polyvalm (@var{c}, @var{x})
  149. Evaluate a polynomial in the matrix sense.
  150.  
  151. @code{polyvalm (@var{c}, @var{x})} will evaluate the polynomial in the
  152. matrix sense, i.e. matrix multiplication is used instead of element by
  153. element multiplication as is used in polyval.
  154.  
  155. The argument @var{x} must be a square matrix.
  156. @end deftypefn
  157.  
  158. @deftypefn {Function File} {} residue (@var{b}, @var{a}, @var{tol})
  159. If @var{b} and @var{a} are vectors of polynomial coefficients, then
  160. residue calculates the partial fraction expansion corresponding to the
  161. ratio of the two polynomials.
  162. @cindex partial fraction expansion
  163.  
  164. The function @code{residue} returns @var{r}, @var{p}, @var{k}, and
  165. @var{e}, where the vector @var{r} contains the residue terms, @var{p}
  166. contains the pole values, @var{k} contains the coefficients of a direct
  167. polynomial term (if it exists) and @var{e} is a vector containing the
  168. powers of the denominators in the partial fraction terms.
  169.  
  170. Assuming @var{b} and @var{a} represent polynomials
  171. @iftex
  172. @tex
  173. $P(s)$ and $Q(s)$
  174. @end tex
  175. @end iftex
  176. @ifinfo
  177.  P (s) and Q(s)
  178. @end ifinfo
  179.  we have:
  180. @iftex
  181. @tex
  182. $$
  183. {P(s)\over Q(s)} = \sum_{m=1}^M {r_m\over (s-p_m)^e_m}
  184.   + \sum_{i=1}^N k_i s^{N-i}.
  185. $$
  186. @end tex
  187. @end iftex
  188. @ifinfo
  189.  
  190. @example
  191.  P(s)    M       r(m)         N
  192.  ---- = SUM -------------  + SUM k(i)*s^(N-i)
  193.  Q(s)   m=1 (s-p(m))^e(m)    i=1
  194. @end example
  195. @end ifinfo
  196.  
  197. @noindent
  198. where @var{M} is the number of poles (the length of the @var{r},
  199. @var{p}, and @var{e} vectors) and @var{N} is the length of the @var{k}
  200. vector.
  201.  
  202. The argument @var{tol} is optional, and if not specified, a default
  203. value of 0.001 is assumed.  The tolerance value is used to determine
  204. whether poles with small imaginary components are declared real.  It is
  205. also used to determine if two poles are distinct.  If the ratio of the
  206. imaginary part of a pole to the real part is less than @var{tol}, the
  207. imaginary part is discarded.  If two poles are farther apart than
  208. @var{tol} they are distinct.  For example,
  209.  
  210. @example
  211. @group
  212.  b = [1, 1, 1];
  213.  a = [1, -5, 8, -4];
  214.  [r, p, k, e] = residue (b, a);
  215.      @result{} r = [-2, 7, 3]
  216.      @result{} p = [2, 2, 1]
  217.      @result{} k = [](0x0)
  218.      @result{} e = [1, 2, 1]
  219. @end group
  220. @end example
  221.  
  222. @noindent
  223. which implies the following partial fraction expansion
  224. @iftex
  225. @tex
  226. $$
  227. {s^2+s+1\over s^3-5s^2+8s-4} = {-2\over s-2} + {7\over (s-2)^2} + {3\over s-1}
  228. $$
  229. @end tex
  230. @end iftex
  231. @ifinfo
  232.  
  233. @example
  234.         s^2 + s + 1       -2        7        3
  235.    ------------------- = ----- + ------- + -----
  236.    s^3 - 5s^2 + 8s - 4   (s-2)   (s-2)^2   (s-1)
  237. @end example
  238. @end ifinfo
  239. @end deftypefn
  240.  
  241. @deftypefn {Function File} {} roots (@var{v})
  242.  
  243. For a vector @var{v} with @var{N} components, return
  244. the roots of the polynomial
  245. @iftex
  246. @tex
  247. $$
  248. v_1 z^{N-1} + \cdots + v_{N-1} z + v_N.
  249. $$
  250. @end tex
  251. @end iftex
  252. @ifinfo
  253.  
  254. @example
  255. v(1) * z^(N-1) + ... + v(N-1) * z + v(N).
  256. @end example
  257. @end ifinfo
  258. @end deftypefn
  259.